ALM (Application Layer Multicast) refers to a function of implementing multicast functions such as packet replication and routing (that is, construction of a tree-structured delivery route) in a network formed with multipoint nodes (=terminal apparatuses).
When video data is delivered in packets by ALM on the Internet, to maintain the quality of video to be delivered, it is necessary to adjust the CPU (central processing unit) load balance between nodes and also adjust the bandwidth to use between nodes.
Consequently, a method has been adopted heretofore whereby a centralized management server monitors the CPU load of all nodes and channel bandwidth availability between nodes and reconstructs a delivery tree when the CPU of a specific node is overloaded or the equality of channel bandwidth availability is not secured between certain nodes.
However, with this method, when the number of nodes (the number of users to participate in a video delivery session) increases, the centralized management server suffers increased processing load and the network traffic around the centralized management server increases. This then raises the problem that the centralized management server is unable to finish the required processing in a predetermined period of time.
Also, when a network channel is congested between nodes, the bandwidth that is available for use for communication between nodes decreases, and video data packet loss occurs. This then raises the problem that the quality of video which a node located in the downstream of a delivery tree receives and plays, is degraded.
Furthermore, when the number of nodes increases, it is necessary to deliver information showing the configuration of a new delivery route calculated by the centralized management server, from that centralized management server to all nodes. Consequently, delivery route updating suffers extra delay and the timing to change a delivery route to an unoccupied channel is delayed, raising, as a result, the problem that the time to use a congested channel becomes longer and the state in which a node has to receive and play poor video lasts longer. A node of high CPU load replicates and transfers packets for a prolonged period of time, and consequently the state in which a node in the downstream has to receive and play poor video lasts longer.
Consequently, in a network in which the number of nodes is large, it is desirable to reconstruct a delivery tree locally in order to change the delivery route and adjust the CPU load in order to avoid congested channels.
Patent literature 1 proposes a method of adjusting CPU load by monitoring the CPU load of a plurality of virtual machines and adjusting the tasks to assign to the virtual machines.
Also, patent literature 2 proposes a method of transferring packets on a different delivery path from normal unicast, in packet transfer between routers. To be more specific, patent literature 2 discloses a method of monitoring the length of the buffer of every router (that is, queue to accumulate packets to deliver) and changing the delivery path on a dynamic basis based on this.
Non-patent literature 1 proposes a delivery tree reconstructing method in ALM.
Also, non-patent literature 2 proposes a delivery tree constructing method to maximize the number of bandwidths available for use, by searching for a node which each node can connect with (that is, parent node).